import hashlib
import sys

def calculate_sha256(file_path):
    """计算并返回给定文件路径的SHA256哈希值"""
    sha256_hash = hashlib.sha256()
    try:
        with open(file_path, "rb") as f:
            # 分块读取文件内容，避免大文件占用过多内存
            for byte_block in iter(lambda: f.read(4096), b""):
                sha256_hash.update(byte_block)
        return sha256_hash.hexdigest()
    except FileNotFoundError:
        print(f"错误：找不到路径为 {file_path} 的文件")
        return None


if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("使用方法: python file_hash.py <directory>")
        sys.exit(1)

    file_path = sys.argv[1]

    # 计算哈希值
    hash_value = calculate_sha256(file_path)

    if hash_value:
        print(f"文件的SHA256哈希值为：{hash_value}")